A database management system (DBMS) is a collection of software programs that manage the storage and access of data. As larger volumes of data are being generated nowadays and thus must be stored and efficiently accessed, DBMSes have been adopted across a wide range of application domains. Driven by such ubiquitous deployments over the last four decades, DBMSes have been designed and engineered based on a few data models that are generally applicable to those domains. The relational data model is the one most prevalently adopted by commercial and open-source DBMSes. A significant amount of effort has been devoted to efficiently support this data model.
Due to the generality of the relational data model, relational database management systems are themselves general, in that they can handle whatever schema the user specifies and whatever query or modification is presented to them. Relational operators work on essentially any relation and must contend with predicates specified on any attribute of the underlying relations. Through such innovations as effective indexing structures, innovative concurrency control mechanisms, and sophisticated query optimization strategies, the relational DBMSes available today are very efficient. Such generality and efficiency has enabled their proliferation and use in many domains.
Nevertheless, such generality is realized via multiple layers of indirections and sophisticated code logic. Efficiency can be further enhanced for DBMSes by exploiting invariant values present during the execution of such systems. Field specialization technology has been developed to automatically identify invariants and effect code specialization based upon invariants. Field specialization is the process of inserting spiffs into DBMS code so that the DBMS can specialize itself at runtime to exploit runtime invariants. A spiff, which stands for specializer in the field, is code that dynamically creates specialized code at DBMS runtime. The specialized code is both smaller and faster than the original unspecialized code. Field specialization gets its name from the fact that the code is specialized “in the field,” i.e., after the DBMS has been deployed and is miming at the end user's site. A spiff uses the actual value of a runtime invariant-which can only be known at runtime—to dynamically produce code that is specialized to that particular value of the runtime invariant.
It would be desirable to have the field specialization broadened to multiple application domains to elaborate a paradigm of computer science.